﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace GestaoContas.LigacaoBD
{
    class FicheiroConfiguracao
    {
        private string _connectionStringLogin;
        private string _connectionStringBd;

        public FicheiroConfiguracao()
        {
            _connectionStringLogin = LerFicheiroConfig("LigacaoLogin.cfg");
            _connectionStringBd = LerFicheiroConfig("LigacaoBD.cfg");
        }

        /// <summary>
        /// Retorna a connection string de ligação à base de dados do login.
        /// </summary>
        /// <returns>Connection string</returns>
        public string GetConnectionStringLogin()
        {
            return _connectionStringLogin;
        }

        /// <summary>
        /// Retorna a connection string de ligação à base de dados do jardim de infância.
        /// </summary>
        /// <returns>Connection string</returns>
        public string GetConnectionStringBd()
        {
            return _connectionStringBd;
        }

        /// <summary>
        /// Lê do ficheiro LigacaoBD.cfg caso exista, a connection string. Se o ficheiro não existir
        /// é criado e retorna uma string null;
        /// </summary>
        /// <param name="ficheiro">Nome do ficheiro de configuração</param>
        /// <returns>Retorna a connection string</returns>
        public string LerFicheiroConfig(string ficheiro)
        {
            string connectionString = null;
            try
            {
                TextReader tr = new StreamReader(ficheiro);  // lê o ficheiro de configuração
                connectionString = tr.ReadLine();
                tr.Close();
            }
            catch (Exception ex)    // caso o ficheiro não exista, é criado
            {
                TextWriter tw = new StreamWriter(ficheiro);
                tw.Close();
            }
            return connectionString;
        }
        
        /// <summary>
        /// Grava no ficheiro de configuração LigacaoBD.cfg, a connection string definida pelo utilizador.
        /// </summary>
        /// <param name="connectionString">Connection string</param>
        /// <param name="ficheiro">Nome do ficheiro de configuração</param>
        public void EscreverFicheiroConfig(string connectionString, string ficheiro)
        {

            TextWriter tw = new StreamWriter(ficheiro);   // escreve o ficheiro de configuração
            tw.WriteLine(connectionString);
            tw.Close();

        }
    }
}
